System identification method and program, storage medium, and system identification device

ABSTRACT

A large-scale sound system or communication system is numerically and stably identified. When an input signal is represented by the M(≦N)-th order AR model, high-speed H ∞  filtering can be performed with a computational complex 3N+O(M). A processing section determines the initial state of a recursive equation (S 201 ), sets C U   k  according to an input u k  (S 205 ), determines a variable recursively (S 207 ), updates a matrix G k   N , calculates an auxiliary gain matrix K U   k   N  (S 209 ) divides it (S 211 ), calculates a variable D k   M  and a backward prediction error η M, k  (S 213 ), calculate a gain matrix K k  (S 215 ), and updates a filter equation of a high-speed H ∞  filter (S 217 ). To reduce the computational complexity, K k (:, 1)/(1+λ f  H k  K k  (:, 1)) is directly used as the filter gain K s, k .

TECHNICAL FIELD

The present invention relates to a system identification method and program, a storage medium, and a system identification device, and particularly to a numerically stabilized fast identification method. Besides, the present invention relates to various system identification methods such as fast identification of a large-scale sound system or communication system using characteristics of a sound as an input signal.

BACKGROUND ART

System identification means estimating a mathematical model (transfer function, impulse response, etc.) of an input/output relation of a system based on input/output data, and typical application examples include an echo canceller in international communication, an automatic equalizer in data communication, an echo canceller and sound field reproduction in a sound system, active noise control in a vehicle etc. and the like. Hitherto, as an adaptable algorithm in the system identification, LMS (Least Mean Square), RLS (Recursive Least Square), or Kalman filter is widely used. In general, an observed value of output of a system is expressed as follows:

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {y_{k} = {{\sum\limits_{i = 0}^{N - 1}{h_{i}u_{k - i}}} + v_{k}}} & (1) \end{matrix}$

Where, u_(k) denotes an input, h_(i) denotes an impulse response of the system, and v_(k) is assumed to be a white noise.

The details are described in non-patent document 1 or the like.

1. LMS

In the LMS, an impulse response x_(k)=[h₀, . . . , h_(N−1)]^(T) of a system is estimated from an input u_(k) and an output y_(k) as follows:

[Mathematical Expression 2]

{circumflex over (x)} _(k)={circumflex over (x)}_(k−1) +μH _(k) ^(T)(y _(k) −H _(k) {circumflex over (x)} _(k−1))  (2)

Where, H_(k)=[u_(k), . . . , u_(k−N+1)]^(T), μ>0.

2. RLS

In the RLS, an impulse response x_(k)=[h₀, . . . , h_(N−1)]^(T) of a system is estimated from an input u_(k) and an output y_(k) as follows:

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 3} \right\rbrack & \; \\ {{\hat{x}}_{k} = {{\hat{x}}_{k - 1} + {K_{k}\left( {y_{k} - {H_{k}{\hat{x}}_{k - 1}}} \right)}}} & (3) \\ {K_{k} = \frac{P_{k - 1}H_{k}^{T}}{\rho + {H_{k}P_{k - 1}H_{k}^{T}}}} & (4) \\ {P_{k} = {\left( {P_{k - 1} - {K_{k}H_{k}P_{k - 1}}} \right)/\rho}} & (5) \end{matrix}$

Where, x̂₀−0, P₀=ε₀I, ε₀>0, 0 denotes a zero vector, ρ denotes a unit matrix, K_(h) denotes a filter gain, and ρ denotes a forgetting factor. (Incidentally, “̂”, “v” means an estimated value and should be placed directly above a character as represented by the mathematical expressions. However, it is placed at the upper right of the character for input convenience. The same applies hereinafter.)

3. Kalman Filter

A minimum variance estimate x̂_(k|k) of a state x_(k) of a linear system expressed in a state space model as indicated by

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 4} \right\rbrack & \; \\ {{x_{k + 1} = {\rho^{- \frac{1}{2}}x_{k}}},{y_{k} = {{H_{k}x_{k}} + v_{k}}}} & (6) \end{matrix}$

is obtained by a following Kalman filter.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 5} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{k|{k - 1}} + {K_{k}\left( {y_{k} - {H_{k}{\hat{x}}_{k|{k - 1}}}} \right)}}}{{\hat{x}}_{{k + 1}|k} = {\rho^{- \frac{1}{2}}{\hat{x}}_{k|k}}}} & (7) \\ {{K_{k} = {{\hat{\Sigma}}_{k|{k - 1}}{H_{k}^{T}\left( {\rho + {H_{k}{\hat{\Sigma}}_{k|{k - 1}}H_{k}^{T}}} \right)}^{- 1}}}{{\hat{\Sigma}}_{k|k} = {{\hat{\Sigma}}_{k|{k - 1}} - {K_{k}H_{k}{\hat{\Sigma}}_{k|{k - 1}}}}}} & (8) \\ {{\hat{\Sigma}}_{{k + 1}|k} = {{\hat{\Sigma}}_{k|k}/\rho}} & (9) \end{matrix}$

Where,

[Mathematical Expression 6]

{circumflex over (x)} _(1|0)=0, {circumflex over (Σ)}_(1|0)=ε₀ I, ε ₀>0  (10)

x_(k): a state vector or simply a state; unknown, and this is an object of estimation. y_(k): an observation signal; an input of the filter and known. H_(k): an observation matrix; known. v_(k): an observation noise; unknown. ρ: a forgetting factor; generally determined by trial and error. K_(k): a filter gain; obtained from a matrix Σ^(̂) _(k|k−1). Σ̂_(k,k): corresponding to a covariance matrix of an error of x̂_(k|k); obtained by a Riccati equation. Σ̂_(k+1|k): corresponding to a covariance matrix of an error of x̂_(kα1|k); obtained by a Riccati equation. Σ̂_(1|0): corresponding to a covariance matrix of an initial state; although unknown, ε₀ ^(I) is used for convenience.

In addition, hitherto, there are techniques described in patent documents 1 and 2 and non-patent documents 2 to 5.

Patent document 1: WO 02/035727, JP-A-2002-135171 Patent document 2: WO 2005/015737 Non-patent document 1: S. Haykin, Adaptive Filter Theory, 3rd Edition, Prentice-Hall, 1996 Non-patent document 2: K. Nishiyama, Derivation of a Fast Algorithm of Modified He Filters, Proceedings of IEEE International Conference on Industrial Electronics, Control and Instrumentation, RBC-II, pp. 462-467, 2000 Non-patent document 3: K. Nishiyama, An H∞ Optimization and Its Algorithm for Time-Variant System Identification, IEEE Transactions on Signal Processing, 52, 5, pp. 1335-1342, 2004 Non-patent document 4: B. Hassibi, A. H. Sayed, and T. Kailath, Indefinite-Quadratic Estimation and Control, 1st Editions, SIAM, 1999 Non-patent document 5: G. Glentis, K. Berberidis, and S. Theodoridis, Efficient least squares adaptive algorithms for FIR transversal filtering, IEEE Signal Processing Magazine, 16,4, pp. 13-41, 1999

DISCLOSURE OF THE INVENTION Problems that the Invention is to Solve

At present, an adaptive algorithm most widely used in the system identification is the LMS. The LMS has a problem that although the amount of calculation is small, convergence speed is very low. On the other hand, in the RLS or the Kalman filter, the value of the forgetting factor ρ which dominates the tracking performance must be determined by trial and error, and this is generally a very difficult work. Further, there is no means for determining whether the determined value of the forgetting factor is really an optimum value.

Besides, although Σ̂_(k|k−1) or P_(k) is originally a positive-definite matrix, in the case where calculation is performed at single precision (example: 32 bit), it often becomes negative definite, and this is one of factors to make the Kalman filter or the RLS numerically unstable. Besides, since the amount of calculation is O(N²), when the dimension (tap number) of a state vector x_(k) is large, the number of times of arithmetic operation per step is rapidly increased, and there has been a case where it is not suitable for a real-time processing.

In view of the above, the present invention has an object to provide an identification method for identifying a large-scale sound system or communication system at high speed and numerically stably. Besides, the invention has an object to derive an algorithm to greatly reduce the amount of calculation of a previously proposed fast H_(∞) filter by using characteristics of a sound as an input signal. Further, the invention has an object to provide a method of numerically stabilizing a fast H_(∞) filter by using a backward prediction error.

Means for Solving the Problems

According to the first solving means of this invention, there is provided a system identification device for performing fast real-time identification of a time invariable or time variable system, comprising:

a filter that is robust against a disturbance by determining that a maximum energy gain to a filter error from the disturbance, as an evaluation criterion, is restricted to be smaller than a previously given upper limit γ_(f) ²,

wherein

the filer satisfies an H_(∞) evaluation criterion as indicated by following expression (14) with respect to a state space model as indicated by following expressions (11) to (13),

when an input signal is expressed by an M(≦N)-th order autoregressive model (AR model), the filter is given by following expressions (38) to (44), and

the filter satisfies a scalar existence condition of following expressions (45) and (46):

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {{x_{k + 1} = {x_{k} + {G_{k}w_{k}}}},w_{k},{x_{k} \in ^{N}}} & (11) \\ {{y_{k} = {{H_{k}x_{k}} + v_{k}}},y_{k},{v_{k} \in }} & (12) \\ {{z_{k} = {H_{k}x_{k}}},{z_{k} \in },{H_{k} \in ^{1 \times N}}} & (13) \\ {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\Sigma_{0}^{- 1}}^{2} + {\overset{k}{\sum\limits_{i = 0}}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \\ \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 2} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:}\;,1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:}\;,1} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}}}{D_{k}^{M} = \frac{D_{k - 1}^{M} - {{m_{k}\left( {{N - M + {1\text{:}N}},\text{:}} \right)}W\; \eta_{M\;,k}}}{1 - {\mu_{k\;}W\; \eta_{M,k}}}}} & (39) \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ K_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{{\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}}{{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W\; {\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}}} & (42) \\ {{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1\text{:}M},\text{:}} \right)}W\; {\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}} & (43) \end{matrix}$

here, G_(k) ^(N) is updated as follows:

$\begin{matrix} {{\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} {e_{M,k}^{T}/S_{M,k}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix} - \left\lbrack \begin{matrix} 0_{{({N - M + 1})} \times 2} \\ {e_{M,{k - N + M - 1}}^{T}/S_{M,{k - N + M - 1}}} \\ {A_{k - N + M - 1}^{M}{e_{M,{k - N + M - 1}}^{T}/S_{M,{k - N + M - 1}}}} \end{matrix} \right\rbrack}}{{where},{C_{k}\left( {:{,{N - M + {1\text{:}N}}}} \right)},{C_{k - 1}^{M} = {C_{k - 1}\left( {:{,{1\text{:}M}}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}} & (44) \end{matrix}$

e_(f,i)=z^(v) _(i|i) −H _(i)x_(i), z^(v) _(i|i)=H_(i)x̂_(i|i) (c_(k)εR^(2×1) is a first column vector of C_(k)=[c_(k), . . . , C_(k−N+1)], c_(k−1)=0_(2×1) and k−i<0 are assumed, and initial values are set to be K₀=0_(N×2), G₀ ^(N)=0_((N+1)×2), A₀ ^(M)=0_(M×1), S_(M,0)=1/ε₀, D₀ ^(M)=0_(M×1), x̂_(0|0)=x^(v)0=0_(N×1), here, 0_(m×n) denotes an m×n zero matrix)

[Mathematical Expression 3]

−Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (45)

here, Q,{circumflex over (Ξ)}_(i) are respectively defined by following expressions:

$\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = \; {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (36) \end{matrix}$

where x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1−χ(γ_(f)), Σ₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Z₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, Z_(k): N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), m_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γ_(f): attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), η_(M,k) and Z_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e^(˜) _(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C _(k) ^(M): a 2×M matrix including an N−M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k).

According to the second solving means of this invention, there is provided a system identification method for performing fast real-time identification of a time invariable or time variable system, a system identification program that causes a computer to perform the identification and a computer readable recording medium recording the program, by using:

a filter that is robust against a disturbance by determining that a maximum energy gain to a filter error from the disturbance, as an evaluation criterion, is restricted to be smaller than a previously given upper limit γ_(f) ²,

wherein

the filer satisfies an H_(∞) evaluation criterion as indicated by following expression (14) with respect to a state space model as indicated by following expressions (11) to (13),

when an input signal is expressed by an M(≦N)-th order autoregressive model (AR model), the filter is given by following expressions (38) to (44), and

the filter satisfies a scalar existence condition of following expressions (45) and (46):

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {{x_{k + 1} = {x_{k} + {G_{k}w_{k}}}},w_{k},{x_{k} \in ^{N}}} & (11) \\ {{y_{k} = {{H_{k}x_{k}} + v_{k}}},y_{k},{v_{k} \in }} & (12) \\ {{z_{k} = {H_{k}x_{k}}},{z_{k} \in },{H_{k} \in ^{1 \times N}}} & (13) \\ {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\sum_{0}^{- 1}}^{2} + {\sum\limits_{i = 0}^{k}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \\ \left\lbrack {{Mathmatical}\mspace{14mu} {Expression}\mspace{14mu} 2} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:},1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:},1} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}}} & (39) \\ {D_{k}^{M} = \frac{D_{k - 1}^{M} - {{m_{k}\left( {{{N - M + 1}:N},:} \right)}W\; \eta_{M,k}}}{1 - {\mu_{k}W\; \eta_{M,k}}}} & \; \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{{\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}} & (42) \\ {{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W\; {\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}} & \; \\ {{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1:M},:} \right)}W\; {\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}} & (43) \end{matrix}$

here, G_(k) ^(N) is updated as follows:

$\begin{matrix} {{\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} {e_{M,k}^{T}/S_{M,k}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix} - \begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ \frac{e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \\ \frac{A_{k - N + M - 1}^{M}e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \end{bmatrix}}}{where},{C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)},{C_{k - 1}^{M} = {C_{k - 1}\left( {\text{:},{1\text{:}M}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}} & (44) \end{matrix}$ e _(f,i) =z ^(v) _(i|i) −H _(i) x _(i) , z ^(v) _(i|i=H) _(i) x̂ _(i|i)

(c_(k)εR^(2×1) is a first column vector of C_(k)=[c_(k), . . . , c_(k−N+1)], c_(k−1)=0_(2×1) and k−i<0 are assumed, and initial values are set to be K₀=0_(N×2), G₀ ^(N)=0_((N+1)×2), A₀ ^(M)=0_(M×1), S_(M,0)=1/ε₀, D₀ ^(M)=0_(M×1), x̂_(0|0)=x^(v)0=0_(N×1), here, 0_(m×n) denotes an m×n zero matrix)

[Mathematical Expression 3]

−Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (45)

here, Q,{circumflex over (Ξ)}_(i) are respectively defined by following expressions:

$\begin{matrix} {{\varrho = {1 = \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{{s,i}\;}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (46) \end{matrix}$

where x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1−ω(γ_(f)), Σ₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Σ₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, k: N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), m_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γ_(f): attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), η_(M,k) and μ_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e^(˜) _(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C _(k) ^(M): a 2×M matrix including an N−M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k).

According to the present invention, it is possible to provide an identification method for identifying a large-scale sound system or communication system at high speed and numerically stably. Besides, according to the present invention, it is possible to derive an algorithm to greatly reduce the amount of calculation of a previously proposed fast H_(∞) filter by using characteristics of a sound as an input signal. Further, according to the present invention, it is possible to provide a method of numerically stabilizing a fast H_(∞) filter by using a backward prediction error.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 An explanatory view showing update of a gain matrix of an order-recursive fast H_(∞) filter.

FIG. 2 A flowchart of a processing of the order-recursive fast H_(∞) filter.

FIG. 3 A flowchart of a check of a scalar existence condition.

FIG. 4 A flowchart of a calculation processing of a value of a prediction variable at a time t_(k−N+M−1).

FIG. 5 A flowchart of a numerically stabilized fast H_(∞) filter processing.

FIG. 6 An explanatory view of a communication system and an echo.

FIG. 7 A principle view of an echo canceller.

FIG. 8 A view showing an estimation result (performance evaluation) of an impulse response by the order-recursive fast H_(∞) filter.

FIG. 9 A convergence characteristic view of the order-recursive fast H_(∞) filter with respect to a sound input.

FIG. 10 A view of comparison of an existence condition.

FIG. 11 A structural view of hardware of an embodiment.

FIG. 12 A view of a result of comparison between the amount of calculation of a fast H_(∞) filter and that of the order-recursive fast H_(∞) filter.

FIG. 13 A view showing an impulse response of an echo path.

BEST MODE FOR CARRYING OUT THE INVENTION 1. Explanation of Symbols

First, main symbols used in the embodiment will be described.

x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1−χ(γ_(f)), Σ₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Z₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, μ_(k): N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), m_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γ_(f): attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), μ_(M,k) and μ_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e^(˜) _(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C_(k) ^(M): a 2×M matrix including an N-M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k).

Incidentally, “̂”, “v” placed above the symbol mean estimated values. Besides, “˜”, “−”, “U” and the like are symbols added for convenience. Although these symbols are placed at the upper right of characters for input convenience, as indicated in mathematical expressions, they are the same as those placed directly above the characters. Besides, x, w, H. G. K, R, Σ and the like are matrixes and should be expressed by thick letters as indicated in the mathematical expressions, however, they are expressed in normal letters for input convenience.

2. Hardware of System Estimation and Program

A system estimation method or a system estimation device/system can be provided by a system estimation program to cause a computer to execute respective procedures, a computer readable recording medium recording the system estimation program, a program product including the system estimation program and capable of being loaded in an internal memory of a computer, a computer, such as a server, including the program, and the like.

FIG. 11 is a structural view of hardware of this embodiment.

The hardware includes a processing section 101 as a central processing unit (CPU), an input section 102, an output section 103, a display section 104, and a storage section 105. Besides, the processing section 101, the input section 102, the output section 103, the display section 104, and the storage section 105 are connected through suitable connection means such as a star or a bus. The known data described in “1. Explanation of Symbols” and subjected to the system estimation are stored in the storage section 105 as the need arises. Besides, the unknown and known data, calculated data relating to the hyper H_(∞) filter, and the other data are written and/or read by the processing section 101 as the need arises.

3. Means of an Identification Method Relevant to the Embodiment

In order to differentiate from a normal H_(∞) filter, an H_(∞) filter in which a forgetting factor can be optimally (quasi-optimally) determined in the meaning of H_(∞) is especially called a hyper H_(∞) filter (non-patent document 2, non-patent document 3). The H_(∞) filter has a feature that it can be applied even when the dynamics of a state is unknown.

Theorem 1 (hyper H_(∞) filter)

With respect to a state space model

[Mathematical Expression 13]

x _(k+1) =x _(k+G) _(k) w _(k) , w _(k) , x _(k) εR ^(N)  (11)

y _(k) =H _(k) x _(k) +v _(k) , y _(k) , v _(k) εR  (12)

z _(k) =H _(k) x _(k) , z _(k) εR, H _(k) εR ^(1×N)  (13)

a state estimated value x̂_(k|k) (or an output estimated value z^(v) _(k|k)) satisfying

$\begin{matrix} {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\sum_{0}^{- 1}}^{2} + {\sum\limits_{i = 0}^{k}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \end{matrix}$

is given by a following hyper H_(∞) filter of level γ_(f).

[Mathematical Expression 14]

{circumflex over (z)} _(k|k) =H _(k) {circumflex over (x)} _(k|k)  (15)

{circumflex over (x)} _(k|k) ={circumflex over (x)} _(k−1|k−1) +K _(s,k)(y _(k) −H _(k) {circumflex over (x)} _(k−1|k−1))  (16)

K _(s,k) ={circumflex over (Σ)} _(k|k−1) H _(k) ^(T)(H _(k) {circumflex over (Σ)} _(k|k−1) H _(k) ^(T)+ρ)⁻¹  (17)

{circumflex over (Σ)} _(k|k) ={circumflex over (Σ)} _(k|k−1) −{circumflex over (Σ)} _(k|k−1) C _(k) ^(T) R _(e,k) ⁻¹ C _(k) {circumflex over (Σ)} _(k|k−1) {circumflex over (Σ)} _(k+1|k) ={circumflex over (Σ)} _(k|k)/ρ  (18)

where,

$\begin{matrix} {{{e_{f,i} = {{\overset{\Cup}{z}}_{i|i} - {H_{i}x_{i}}}},{{\hat{x}}_{0|0}{\overset{\Cup}{x}}_{0}},{{\hat{\Sigma}}_{1|0}{= \Sigma_{0}}}}{{R_{e,k} = {{R + {C_{k\;}{{\hat{\Sigma}}_{k|{k - 1}}{C_{k}^{T}R}}}} = \begin{bmatrix} \rho & 0 \\ 0 & {{- \rho}\; \gamma_{f}^{2}} \end{bmatrix}}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}}}} & (19) \\ {{{0 < \rho} = {{1 - {\chi \left( \gamma_{f} \right)}} \leq 1}},{\gamma_{f} > 1}} & (20) \end{matrix}$

χ (γ_(f)) is a monotonically decreasing function satisfying χ(1)=1 and χ(∞)=0. Besides, a drive matrix G_(k) is generated as follows:

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 15} \right\rbrack & \; \\ {{G_{k}G_{k}^{T}} = {{{\chi \left( \gamma_{f} \right)}{\hat{\Sigma}}_{{k + 1}|k}} = {\frac{\chi \left( \gamma_{f} \right)}{\rho}{\hat{\Sigma}}_{k|k}}}} & (21) \end{matrix}$

Where, a following existence condition must be satisfied.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 16} \right\rbrack & \; \\ {{{\hat{\Sigma}}_{i|i}^{- 1} = {{{\hat{\Sigma}}_{i|{i - 1}}^{- 1} + {\frac{1 - \gamma_{f}^{- 2}}{\rho}H_{i}^{T}H_{i}}} > 0}},{i = 0},\ldots \mspace{14mu},k} & (22) \end{matrix}$

The feature of the hyper H_(∞) filter is that the generation of robustness in the state estimation and the optimization of the forgetting factor ρ are simultaneously performed.

When the hyper H_(∞) filter satisfies the existence condition, the in equation of expression (14) is always satisfied. Thus, in the case where the disturbance energy of the denominator of expression (14) is limited, the total sum of the square estimated error of the numerator becomes bounded, and the estimated error after a certain time has to become 0. This means that when γ_(f) can be made small, the estimated value x̂_(k|k) can more quickly follow the change of the state x_(k).

Here, attention should be given to the fact that the algorithm of the hyper H_(∞) filter of Theorem 1 is different from that of the normal H_(∞) filter (non-patent document 4). Besides, when γ_(f)→∞, then ρ=1 and G_(k)=0, and the algorithm of the hyper H_(∞) filter of Theorem 1 formally coincides with the algorithm of the Kalman filter.

The amount of calculation of the hyper H_(∞) filter is O (N²), and this is not suitable for a real-time processing. However, when an observation matrix H_(k) has a shift characteristic H_(k+1)=[u_(k+1), H_(k)(1), H_(k)(2), . . . , H_(k)(N−1)], a fast algorithm of the amount of calculation O(N) has been developed (non-patent document 2, non-patent document 3).

Theorem 2 (fast H_(∞) filter)

When the observation matrix H_(k) satisfies the shift characteristic, the hyper H_(∞) filter having Σ₀=ε₀I>0 can be executed by a following expression and with the amount of calculation O(N).

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 17} \right\rbrack & \; \\ {{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}} & (23) \\ {K_{s,k} = {\frac{K_{k}}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:},1} \right)}}} \in ^{N \times 1}}} & (24) \\ {{K_{k} = {{m_{k} - {D_{k}\mu_{k}}} \in ^{N \times 2}}}{D_{k} = {\left\lbrack {D_{k - 1} - {m_{k}W\; \eta_{k}}} \right\rbrack \left\lbrack {1 - {\mu_{k}W\; \eta_{k}}} \right\rbrack}^{- 1}}} & (25) \\ {\eta_{k} = {c_{k - N} + {C_{k}D_{k - 1}}}} & (26) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (27) \\ {{{\overset{\Cup}{K}}_{k} = \begin{bmatrix} {S_{k}^{- 1}e_{k}^{T}} \\ {K_{k - 1} + {A_{k\;}S_{k}^{- 1}e_{k}^{T}}} \end{bmatrix}}{{S_{k} = {{\rho \; S_{k - 1}} + {e_{k}^{T}W\; {\overset{\sim}{e}}_{k}}}},{e_{k} = {c_{k} + {C_{k - 1}A_{k}}}}}} & (28) \\ {{{A_{k} = {A_{k - 1} - {K_{k - 1}W\; {\overset{\sim}{e}}_{k}}}},{{\overset{\sim}{e}}_{k} = {c_{k} + {C_{k - 1}A_{{k - 1}\;}}}}}{{where},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}} & (29) \end{matrix}$

C_(k)εR^(2×1) is a first column vector of C_(k)=[C_(k), . . . , C_(k−N+1)], C_(k−i)=0_(2×1) and k−i<0 are assumed, and initial values are set to be k₀=O_(N×2), A₀=O_(N×1), S₀=1/ε₀, D₀=O_(N×1), and X̂_(0|0)=0_(N×1). Where, O_(m×n) denotes an m×n zero matrix.

At this time, a following scalar existence condition must be satisfied.

[Mathematical Expression 18]

−Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (30)

Where, Q, {circumflex over (Ξ)}_(i) are respectively defined by following expressions.

$\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (31) \end{matrix}$

4. Means of the Identification Method of the Embodiment of the Invention 4.1 Preparation

It is assumed that an input signal is expressed by an M(≦N)-th order AR model (autoregressive model), and a method of optimally generating an (N+1)×2 auxiliary gain matrix K^(U) _(k) ^(N)=Q^(U) _(k) ⁻¹C^(U) _(k) ^(T) from an M×2 gain matrix is derived. Where, Q^(U) _(k) is expressed by

[Mathematical Expression 19]

{hacek over (Q)} _(k) =ρ{hacek over (Q)} _(k−1) +{hacek over (C)} _(k) ^(T) W{hacek over (C)} _(k)  (32)

and C^(U) _(k)=[C_(k) c_(k−N)]=[c_(k) C_(k−1)] is established (non-patent document 2).

[Lemma 1]

When an input signal is expressed by the M(≦N)-th order AR model, the auxiliary gain matrix K^(U) _(k) ^(N) is given by a following expression.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 20} \right\rbrack & \; \\ {{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + {\sum\limits_{i = 0}^{N - M}{\frac{1}{S_{M,{k - i}}}\begin{bmatrix} 0_{i \times 2} \\ e_{M,{k - i}}^{T} \\ {A_{k - i}^{M}e_{M,{k - i}}^{T}} \\ 0_{{({N - M - i})} \times 2} \end{bmatrix}}}}} & (33) \end{matrix}$

Where, e_(M,k)=C_(K)+C_(k−1) ^(M)A_(k) ^(M), C_(k−1) ^(M)=C_(k−1)(:,1:M), K^(U) _(k−N+M−1) ^(M−1)=K_(k−N+M−1)(1:M,:). Here, C_(K−1) (:,1:M) denotes a matrix including the first column to the M-th column of C_(k−1). (Proof) See “7. Proof of lemma” (described later).

[Lemma 2]

When an input signal is expressed by the M(≦N)-th order AR model, the auxiliary gain matrix K^(U) _(k) ^(N) is equivalent to a following expression.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 21} \right\rbrack & \; \\ {{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}} & (34) \\ {\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + {\frac{1}{S_{M,k}}\begin{bmatrix} e_{M,k}^{T} \\ {A_{k}^{M}e_{M,k}^{T}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix}} - {\frac{1}{S_{M,{k - N + M - 1}}}\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ e_{M,{k - N + M - 1}}^{T} \\ {A_{k - N + M - 1}^{M}e_{M,{k - N + M - 1}}^{T}} \end{bmatrix}}}} & (35) \end{matrix}$

G₀=O_((N+1)×2), K^(U) _(k−N+M−1)=O_((M+1)×2), k−N+M−1≦0. (Proof) See “7. Proof of lemma” (described later)

[Lemma 3]

When an input signal is expressed by the M(≦N)-th order AR model, a gain matrix K_(k) is expressed by a following expression.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 22} \right\rbrack & \; \\ {{K_{k} = {m_{k} - {D_{k}\mu_{k}}}}{{where},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}},{D_{k}^{M} = \frac{D_{k - 1}^{M} - {{m_{k}\left( {{N - M + {1\text{:}N}},\text{:}} \right)}W\; \eta_{M,k}}}{1 - {\mu_{k}W\; \eta_{M,k}}}}}{{\eta_{M,k} = {{c_{k - N} + {{\underset{\_}{C}}_{k}^{M}{D_{{k - 1}\;}^{M}\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix}}}} = {\overset{\Cup}{K}}_{k}^{N}}},{m_{k} \in ^{N \times 2}},{\mu_{k}^{1 \times 2}}}} & (36) \\ {{\underset{\_}{C}}_{k}^{M} = {C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)}} & (37) \end{matrix}$

Here, m_(k)(M:N,:)=[m_(k)(M,:)^(T), . . . m_(k) (N,:)^(T)] ^(T), and m_(k)(i,:) is the i-th row vector of m_(k). (Proof) See “7. Proof of lemma” (described later)

FIG. 1 is an explanatory view showing update of a gain matrix of an order-recursive fast H_(∞) filter.

This figure shows the summary of the above. By this, it is understood that

K _(k−N+M−1)(1:M,:)=K _(k−1)(N−M+1:N,:)

is theoretically established.

This point will be explained below.

K_(k−N+M−1) ^(M) including the first to the M-th row of the N×2 gain matrix K_(k−N+M−1) is extrapolated by using A_(k−i) ^(M) and S_(M,k−i), and after the (N+1)×2 auxiliary gain matrix K^(U) _(k) ^(N) is generated, the gain matrix K_(k) at a next time is obtained using D_(k) ^(M), and this is repeated hereafter.

4.2 Derivation of the Order-Recursive Fast H_(∞) Filter

Next, a fast H_(∞) filter having an optimum expanded filter gain will be described.

Theorem 3 (Order-Recursive Fast H_(∞) Filter)

When an input signal is expressed by the M(≦N)-th order AR model, the fast H_(∞) filter is executed by a following expression and with the amount of calculation 3N+O(M).

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 23} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:},1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:},1} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{m} \end{bmatrix}}}{D_{k}^{M} = \frac{D_{k - 1}^{M} - {{m_{k}\left( {{N - M + {1\text{:}N}},\text{:}} \right)}W\; \eta_{M,k}}}{1 - {\mu_{k}W\; \eta_{M,k}}}}} & (39) \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{{\overset{\Cup}{K}}_{k - N + M}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}} & (42) \\ {{{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W\; {\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}}{{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1\text{:}M},\text{:}} \right)}W\; {\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}}} & (43) \end{matrix}$

Where, G^(N) _(k) is updated as follows:

$\begin{matrix} {{\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} {e_{M,k}^{T}/S_{M,k}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix} - \begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ \frac{e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \\ \frac{A_{k - N + M - 1}^{M}e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \end{bmatrix}}}{{where},{{\underset{\_}{C}}_{k}^{M} = {C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)}},{C_{k - 1}^{M} = {C_{k - 1}\left( {\text{:},{1:M}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}} & (44) \end{matrix}$

e_(f,i)=Z^(v) _(i|i)−H_(i)x_(i), z^(v) _(i|i)=H_(i)x̂_(i|i), C_(k)εR^(3×1) is the first column vector of C_(k)=[c_(k), . . . , C_(k−N+1)], C_(k−i)=O²⁻¹, k−i<0, and initial values are set to be K₀=O_(N×2), G₀ ^(N)=O_((N+1)×2), A₀ ^(M)=O_(M×1), S_(M,0)=1/ε₀, D₀ ^(M)=0_(M×1), x̂_(0|0)=x^(v)0=0_(N−1).

Besides, a following scalar condition must be satisfied.

[Mathematical Expression 24]

−Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (45)

Here, Q, {circumflex over (Ξ)}_(i)| are respectively defined by following expressions.

$\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (46) \end{matrix}$

(Proof) It is obtained when the lemmas 1, 2 and 3 are applied to Theorem 2.

4.3 Mounting of the Order-Recursive Fast H∞ Filter

FIG. 2 shows a flowchart of the order-recursive fast H_(∞) filter.

In order to reduce the amount of calculation, K_(k)(:,1)/(1+γ_(f) ⁻²H_(k)K_(k)(:,1)) was directly used instead of K_(s,k).

Hereinafter, the processing of the order-recursive fast H_(∞) filter will be described with reference to a flowchart.

[Step S201, Initialization] The processing section 101 reads an initial state of a recursive equation from the storage section 105, or inputs the initial state from the input section 102, and determines it as shown in the figure. [Step S203] The processing section 101 compares a time k with a maximum data number L. Incidentally, L denotes the previously determined maximum data number. When the time k is larger than the maximum data number, the processing section 101 ends the processing, and when not larger than that, advance is made to a next step. (If unnecessary, the conditional sentence can be removed. Alternatively, restart may be made as the need arises.) [Step S205, Input] The processing section 101 inputs an input u_(k) from the input section 102, and sets C^(U) _(k) as shown in the figure. Incidentally, the input u_(k) may be read from the storage section 105. [Step S207, Forward prediction] The processing section 101 recursively determines variables e_(M,k), A_(k) ^(M), S_(M,k), K_(k)(1:M,:) and the like by expression (43). [Step S209, Extrapolation] The processing section 101 updates a matrix G_(k) ^(N) by expression (44), and calculates an auxiliary gain matrix K^(U) _(k) ^(N) by expression (42). [Step S211, Partition] The processing section 101 partitions the auxiliary gain matrix K^(U) _(k) ^(N) by expression (41). [Step S213, Backward prediction] The processing section 101 calculates a variable D_(k) ^(M) and a backward prediction error η_(M,k) by expression (40). [Step S215, Gain matrix] The processing section 101 calculates a gain matrix K_(k) by expression (39). [Step S217, Filtering] The processing section 101 updates a filter equation of the fast H_(∞) filter by expression (38). Here, in order to reduce the amount of calculation, K_(k)(:,1)/(1+γ_(f) ⁻²H_(k)K_(k)(:,1) is directly used as a filter gain K_(s,k). [Step S219] The processing section 101 advances the time k (k=k+1), returns to step S203, and continues as long as data exists or a specified number of times.

Incidentally, the processing section 101 may store a suitable intermediate value and a final value obtained at the respective steps of the calculation steps S205 to S217 of the H_(∞) filter, a value of an existence condition and the like into the storage section 105 as the need arises, and may read them from the storage section 105.

Besides, it should be noted that the order-recursive fast H_(∞) filter is completely coincident with the fast H_(∞) filter when M=N is established.

FIG. 3 is a flowchart of check of a scalar existence condition.

In general, a check function of the existence condition of FIG. 3 is added to the flowchart of FIG. 2. This step can be executed by the processing section 101 at a suitable timing before or after a suitable one step or plural steps of the flowchart of FIG. 2 or FIG. 4 (described later) or the step (S219) of advancing the time k. EXC(k) corresponds to the left side of the foregoing expression (45).

4.4 Calculation of Prediction Variable

As a method of obtaining variables e_(M,k−N+M−1), A_(k−N+M−1) ^(M), S_(M, k−N+M−1) and K^(U) _(k−N+M−1) ^(M−1) (=K_(k−N+M−1) ^(M)=K_(k−N+M−1) (1:M,:) at the Extrapolation (step S209) of FIG. 2, there are following two methods.

1) Values of the variables obtained at the respective steps are held on a memory during N-M steps. 2) Values of the variables at a time t_(k−N+M−1) are also again calculated at the respective steps (see FIG. 4 described later).

In general, the method of 1) is suitable for a DSP (Digital Signal Processor) having a large storage capacity, and the method of 2) is often suitable for a normal DSP, and either of the methods may be used.

FIG. 4 is a flowchart of a calculation method of values of prediction variables at the time t_(k−N+M−1).

Hereinafter, a calculation processing of the values of the prediction variables at the time t_(k−N+M−1) will be described with reference to the flowchart. The processing section 101 calculates the respective variables based on the flowchart, and uses the respective variables when step S209 or the like of the flowchart of FIG. 2 is calculated.

[Step S401, Initialization] The processing section 101 reads an initial state of a recursive equation from the storage section 105, or inputs the initial state from the input section 102, and determines it as shown in the figure. [Step S403] The processing section 101 compares a time k with a maximum data number L. Incidentally, L denotes the previously determined maximum data number. When the time k is larger than the maximum data number, the processing section 101 ends the processing, and when not larger than that, advance is made to a next step. (If unnecessary, the conditional sentence can be removed. Alternatively, restart may be made as the need arises.) [Step S405, Input] An input u_(k) is inputted from the input section 102, and C^(U) _(k) is set as shown in the figure. Incidentally, the input u_(k) may be read from the storage section 105. [Step S407, Forward prediction] The processing section 101 recursively determines variables e_(M,k), A_(k) ^(M), S_(M,k), K_(k−1) ^(M) and the like as shown in the figure (see expression (43)). [Step S409, Extrapolation] The processing section 101 calculates an auxiliary gain matrix K^(U) _(k) ^(M) as shown in the figure (see expression (42)). [Step S411, Partition] The processing section 101 partitions the auxiliary gain matrix K^(U) _(k) ^(M) as shown in the figure (see expression (41)). [Step S413, Backward prediction] The processing section 101 calculates a variable D_(k) ^(M) and a backward prediction error η_(M,k) as shown in the figure (see expression (40)). [Step S415, Gain matrix] The processing section 101 calculates a gain matrix K_(k) ^(M) as shown in the figure (see expression (39)). [Step S417] The processing section 101 advances the time k (k=k+1), returns to step S403, and continues as long as data exists or a specified number of times.

Incidentally, the processing section 101 may store a suitable intermediate value and a final value obtained at the respective steps of the calculation steps S405 to S415 of the H_(∞) filter, a value of an existence condition and the like into the storage section 105 as the need arises, or may read them from the storage section 105.

4.5 Backward Prediction Error

For numerical stabilization, instead of the backward prediction error η_(k),

[Mathematical Expression 25]

{tilde over (η)} _(k)=η_(k)+β(η_(k−ρ) ^(−N) S _(k)μ_(k) ^(T))  (47)

can be adopted.

FIG. 5 is a flowchart of a numerically stabilized fast H_(∞) filter (order-recursive fast H_(∞) filter at M=N).

In general, a check function of an existence condition of FIG. 3 is added to this flowchart. Besides, β denotes a control parameter, and β is generally made β=1.0. This stabilizing method can be applied also to a case of M<N.

Hereinafter, the processing of the numerically stabilized fast H_(∞) filter will be described with reference to the flowchart.

[Step S501, Initialization] The processing section 101 reads an initial state of a recursive equation from the storage section 105, or inputs the initial state from the input section 102, and determines it as shown in the figure. [Step S503] The processing section 101 compares a time k with a maximum data number L. Incidentally, L denotes the previously determined maximum data number. When the time k is larger than the maximum data number, the processing section 101 ends the processing, and when not larger than that, advance is made to a next step. (If unnecessary, the conditional sentence can be removed. Alternatively, restart may be made as the need arises.) [Step S505, Input] An input u_(k) is inputted from the input section 102, and C^(U) _(k) is set as shown in the figure. Incidentally, the input u_(k) may be read from the storage section 105. [Step S507, Forward prediction] The processing section 101 recursively determines variables e_(M,k), A_(k), S_(k), K_(k−1) and the like as shown in the figure (see expression (43)). [Step S509, Extrapolation] The processing section 101 calculates an auxiliary gain matrix K^(U) _(k) ^(N) as shown in the figure (see expression (42)). [Step S511, Partition] The processing section 101 partitions the auxiliary gain matrix K^(U) _(k) ^(N) as shown in the figure (see expression (41)). [Step S513, Stabilized backward prediction] The processing section 101 calculates a variable D_(k) ^(M) and a backward prediction error η{tilde over ( )}_(,k) as shown in the figure (see expression (40)). Here, for numerical stabilization, η{tilde over ( )}_(k) (expression (47)) is adopted instead of the backward prediction error η_(k). [Step S515, Gain matrix] The processing section 101 calculates a gain matrix K_(k) ^(M) as shown in the figure (see expression (39)). [Step S517, Filtering] The processing section 101 updates a filter equation of the fast H_(∞) filter by expression (38). Here, in order to reduce the amount of calculation, K_(k)(:,1)/(1+γ_(f) ⁻²H_(k)K_(k)(:,1) is directly used as the filter gain K_(s,k). [Step S519] The processing section 101 advances the time k (k=k+1), returns to step S503, and continues as long as data exists or a specified number of times.

Incidentally, the processing section 101 may store a suitable intermediate value and a final value obtained at the respective steps of the calculation steps S505 to S517 of the H_(∞) filter, a value of an existence condition and the like into the storage section 105 as the need arises, or may read them from the storage section 105.

5. Comparison Result

FIG. 12 is a view of result of comparison between the amount of calculation of the fast H_(∞) filter (FHF) and that of the order-recursive fast H_(∞) filter (OR-FHF).

However, this result is obtained in the case where calculation is performed in accordance with the expressions, and the amount of calculation can be further reduced by contrivance. Besides, division of a vector by a scalar can be counted as multiplication by taking the reciprocal of the scalar.

By this, when M<<N is established, the number of times of multiplication required for the order-recursive fast H_(∞) filter becomes about 3N, and it is understood that the amount of calculation can be greatly reduced as compared with the fast H_(∞) filter.

6. Echo Canceller 6.1 Preparation

Hereinafter, an example of an echo canceller is adopted as the embodiment, and the operation of the identification algorism is confirmed. Before that, the echo canceller will be described in brief.

FIG. 6 is an explanatory view of a communication system and an echo.

In a long distance telephone circuit such as an international telephone, a four-wire circuit is used from the reason of signal amplification and the like. On the other hand, since a subscriber's circuit has a relatively short distance, a two-wire circuit is used. A hybrid transformer as shown in the figure is introduced at a connection part between the two-wire circuit and the four-wire circuit, and impedance matching is performed. When the impedance matching is complete, a signal (sound) from a speaker B reaches only a speaker A. However, in general, it is difficult to realize the complete matching, and there occurs a phenomenon in which part of the received signal leaks to the four-wire circuit, and returns to the receiver (speaker A) after being amplified. This is an echo. As a transmission distance becomes long (as a delay time becomes long), the influence of the echo becomes large, and the quality of a telephone call is remarkably deteriorated (in the pulse transmission, even in the case of short distance, the deterioration of a telephone call due to the echo can be a problem).

FIG. 7 is a principle view of an echo canceller.

As shown in the figure, the echo canceller is introduced, an impulse response of an echo path is successively estimated by using a received signal which can be directly observed and an echo, and a pseudo-echo obtained by using it is subtracted from the actual echo to cancel the echo and to remove it.

The estimation of the impulse response of the echo path is performed so that the mean square error of a residual echo e_(k) becomes minimum. At this time, elements to interfere with the estimation of the echo path are circuit noise and a signal (sound) from the speaker A. In general, when two speakers simultaneously start to speak (double talk), the estimation of the impulse response is suspended. Besides, since the impulse response length of the hybrid transformer is, for example, about 50 [ms], when the sampling period is made 125 [μs], the order of the impulse response of the echo path becomes actually about 400.

Next, a mathematical model of this echo canceling problem is created. First, when consideration is given to the fact that the received signal {u_(k)} becomes the input signal to the echo path, by the impulse response {h_(i)[k]} of the echo path, an observed value {y_(k)} of an echo {d_(k)} is expressed by a following expression.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 26} \right\rbrack & \; \\ {{y_{k} = {{d_{k} + v_{k}} = {{\sum\limits_{i = 0}^{N - 1}{{h_{i}\lbrack k\rbrack}u_{k - i}}} + v_{k}}}},{k = 0},1,2,\ldots} & (48) \end{matrix}$

Here, u_(k) and y_(k) respectively denote the received signal and the observed value of the echo at a time t_(k) (=kT; T is a sampling period), v_(k) denotes circuit noise of a mean value 0 at the time t_(k), and it is assumed that a tap number N is known. At this time, when an estimated value {ĥ_(i)[k]} of the impulse response is obtained every moment, the pseudo-echo can be generated by using that as described below.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 27} \right\rbrack & \; \\ {{{\hat{d}}_{k} = {\sum\limits_{i = 0}^{N - 1}{{{\hat{h}}_{i}\lbrack k\rbrack}u_{k - i}}}},{k = 0},1,2,\ldots} & (49) \end{matrix}$

When this is subtracted from the echo (y_(k)−d̂_(k)≈0), and the echo can be cancelled. Where, it is assumed that if k−i<0, then u_(k−i)=0.

From the above, the canceling problem can be reduced to the problem of successively estimating the impulse response {h_(i)[k]} of the echo path from the received signal {u_(k)} which can be directly observed and the observed value {y_(k)} of the echo.

In general, in order to apply the H_(∞) filter to the echo canceller, first, expression (48) must be expressed by a state space model including a state equation and an observation equation. Then, when {h_(i)[k]} is made a state variable x_(k), and a variance of about w_(k) is allowed, the following state space model can be established for the echo path.

[Mathematical Expression 28]

x _(k+1) =x _(k) +G _(k) w _(k) , x _(k) , w _(k) εR ^(N)  (50)

y _(k) =H _(k) x _(k) +v _(k) , y _(k) , v _(k) εR  (51)

z _(k) =H _(k) x _(k) , z _(k) εR, H _(k) εR ^(1×N)  (52)

Where,

x_(k)=[h₀[k], . . . , h_(N−1)[k]]^(T), w_(k)=[w_(k) (1), . . . , w_(k) (N)]^(T) H_(k)=[u_(k), . . . u_(k−N+1])

6.2 Confirmation of Operation

FIG. 13 is a view showing an impulse response of an echo path.

With respect to the case where the impulse response of the echo path is temporally invariable (h_(i)[k]=h_(i)), and for example, the tap number N is 48, the operation of the fast algorithm is confirmed by using a simulation. At this time, the observed value y_(k) of the echo is expressed by a following expression.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 29} \right\rbrack & \; \\ {y_{k} = {{\sum\limits_{i = 0}^{63}{h_{i}u_{k - i}}} + v_{k}}} & (53) \end{matrix}$

Where, the values of FIG. 13 are used for the impulse response {h_(i)}_(i=0) ²³, and the other {h_(i)}_(i=) ₂₄ ⁶³ is made 0. Besides, it is assumed that v_(k) is stationary Gaussian white noise having a mean value of 0 and a variance σ_(v)=1.0×10⁻⁴, and the sampling period T is made 1.0 for convenience.

Besides, the received signal {u_(k)} is approximated by a secondary AR model as follows:

[Mathematical Expression 30]

u _(k)=α₁ u _(k−1+α) ₂ u _(k−2) +w′ _(k)  (54)

Where, α₁=0.7, α₂=0.1, and W_(k)′ is the stationary Gaussian white noise having a mean value of 0 and a variance σ_(w′) ²=0.04.

FIG. 8 is a view showing an estimation result (performance evaluation) of the impulse response by the order-recursive fast H_(∞) filter at M=2.

Here, FIG. 8A shows an estimated value (X̂_(256|256)) of the impulse response at k=256 (broken line indicates a true value), and FIG. 8B shows a convergence characteristic thereof. Where, the vertical axis of FIG. 8B indicates ∥x_(k)−x̂_(k|k)∥²Σ_(i=0) ⁶³ (h_(i)−x̂_(k) (i+1))². By this, it is understood that the impulse response of the system can be excellently estimated by the order-recursive fast H_(∞) filter. Where, ρ=1−χ(γ_(f)), Ψ(γ_(f))=γ_(f) ⁻², x̂_(0|0)=0, γ_(f)=10.0, Σ̂_(1|0=ε) ₀I, and ε₀=10.0 are assumed, and the calculation is performed at MATLAB (double precision)

FIG. 9 is a convergence characteristic view of the order-recursive fast H_(∞) filter with respect to sound input (in this example, N=512, M=20, γ_(f)=54.0).

Here, it is assumed that the order of the impulse response of an unknown system is 512, and the sound is a 20th order AR model. Besides, γ_(f)=54.0 and ε₀=1.0 are assumed, and the calculation is performed at MATLAB (double precision). By this, it is understood that even when the input is sound, the order-recursive fast H_(∞) filter has excellent performance.

FIG. 10 is a view of comparison of an existence condition. This figure shows temporal changes of values of the left side (EXC(k)) of the scalar existence condition with respect to the fast H_(∞) filter (order-recursive fast H_(∞) filter at M=N) (FIG. 10A) and a numerically stabilized fast H_(∞) filter (FIG. 10B) (in this example, N=256, γ_(f)=42.0).

By this, in the case of the fast H_(∞) filter, the value of EXC (k) becomes negative at about 45000 steps, and the filter is stopped. On the other hand, in the numerically stabilized fast H_(∞) filter, EXC(k) always keeps a positive value in this section, and the existence condition is satisfied. However, the calculation is performed at single precision, and the same sound signal is used for each input.

7. Proof of Lemma 7.1 Proof of Lemma 1

When the dimension of a state vector is M, a following expression is obtained from expression (28).

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 31} \right\rbrack & \; \\ {{\overset{\Cup}{K}}_{k}^{M} = {\begin{bmatrix} 0_{1 \times 2} \\ {\overset{\Cup}{K}}_{k - 1}^{M - 1} \end{bmatrix} + {\frac{1}{S_{M,k}}\begin{bmatrix} e_{M,k}^{T} \\ {A_{k}^{M}e_{M,k}^{T}} \end{bmatrix}}}} & (55) \end{matrix}$

When this is applied to the case of the dimension of M+1, an auxiliary gain matrix K^(U) _(k) ^(M+1) is obtained.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 32} \right\rbrack & \; \\ {{\overset{\Cup}{K}}_{k}^{M + 1} = {\begin{bmatrix} 0_{1 \times 2} \\ {\overset{\Cup}{K}}_{k - 1}^{M} \end{bmatrix} + {\frac{1}{S_{{M + 1},k}}\begin{bmatrix} e_{{M + 1},k}^{T} \\ {A_{k}^{M + 1}e_{{M + 1},k}^{T}} \end{bmatrix}}}} & (56) \end{matrix}$

On the other hand, when an input signal can be expressed by an M-th order AR model, e_(M,k)=min{e_(m,k)} and e{tilde over ( )}_(M,k)=min{e{tilde over ( )}_(m,k)} are established for m>M. By this,

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 33} \right\rbrack & \; \\ {{e_{m,k} = {{c_{k} + {C_{k - 1}^{m}A_{k}^{m}}} = {{c_{k} + {C_{k - 1}^{M}A_{k}^{M}}} = e_{M,k}}}}{{\overset{\sim}{e}}_{m,k} = {{c_{k} + {C_{k - 1}^{m}A_{k - 1}^{m}}} = {\overset{\sim}{e}}_{M,k}}}{{A_{k}^{m}e_{m,k}^{T}} = \begin{bmatrix} {A_{k}^{M}e_{M,k}^{T}} \\ 0_{{({m - M})} \times 1} \end{bmatrix}}{S_{m,k} = {S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W{\overset{\sim}{e}}_{M,k}}}}}} & (57) \end{matrix}$

At this time,

$\begin{matrix} {{{\overset{\Cup}{Q}}_{k}^{M + 1}\begin{bmatrix} \begin{matrix} 0 \\ 1 \end{matrix} \\ A_{k - 1}^{M} \end{bmatrix}} = \begin{bmatrix} 0 \\ S_{M,{k - 1}} \\ 0_{M} \end{bmatrix}} & \; \end{matrix}$

is established. Thus, a following expression is obtained.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 34} \right\rbrack & \; \\ \begin{matrix} {{\overset{\Cup}{K}}_{k}^{M + 1} = {\begin{bmatrix} 0_{1 \times 2} \\ {\overset{\Cup}{K}}_{k - 1}^{M} \end{bmatrix} + {\frac{1}{S_{M,k}}\begin{bmatrix} e_{M,k}^{T} \\ \begin{matrix} {A_{k}^{M}e_{M,k}^{T}} \\ 0_{1 \times 2} \end{matrix} \end{bmatrix}}}} \\ {= {\begin{bmatrix} 0_{1 \times 2} \\ 0_{1 \times 2} \\ {\overset{\Cup}{K}}_{k - 2}^{M - 1} \end{bmatrix} + {\frac{1}{S_{M,{k - 1}}}\begin{bmatrix} \begin{matrix} 0_{1 \times 2} \\ e_{M,{k - 1}}^{T} \end{matrix} \\ {A_{k - 1}^{M}e_{M,{k - 1}}^{T}} \end{bmatrix}} + {\frac{1}{S_{M,k}}\begin{bmatrix} \begin{matrix} e_{M,k}^{T} \\ {A_{k}^{M}e_{M,k}^{T}} \end{matrix} \\ 0_{1 \times 2} \end{bmatrix}}}} \end{matrix} & \; \end{matrix}$

Similarly, when the repetition is made up to N, at last, by using A_(k−1) ^(M), S_(M,k−1) satisfying

${{\overset{\Cup}{Q}}_{k - i}^{M}\begin{bmatrix} 1 \\ A_{k - i}^{M} \end{bmatrix}} = \begin{bmatrix} S_{M,{k - i}} \\ 0_{M} \end{bmatrix}$

that is,

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 35} \right\rbrack & \; \\ {{{\overset{\Cup}{Q}}_{k}^{N}\begin{bmatrix} \begin{matrix} 0_{i} \\ 1 \end{matrix} \\ A_{k - 1}^{M} \\ 0_{N - M - i} \end{bmatrix}} = \begin{bmatrix} 0_{i} \\ S_{M,{k - 1}} \\ 0_{M} \\ 0_{N - M - i} \end{bmatrix}} & \; \end{matrix}$

the auxiliary gain matrix K^(U) _(k) ^(N) can be expressed as follows:

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 36} \right\rbrack & \; \\ {{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + {\sum\limits_{i = 0}^{N - M}{\frac{1}{S_{M,{k - i}}}\begin{bmatrix} 0_{i \times 2} \\ e_{M,{k - i}}^{T} \\ {A_{k - i}^{M}e_{M,{k - i}}^{T}} \\ 0_{{({N - M - i})} \times 2} \end{bmatrix}}}}} & \; \end{matrix}$

7.2 Proof of Lemma 2

An auxiliary variable G_(k) ^(N) is defined as

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 37} \right\rbrack & \; \\ {G_{k}^{N} = {\sum\limits_{i = 0}^{N - M}{\frac{1}{S_{M,{k - i}}}\begin{bmatrix} 0_{i \times 2} \\ e_{M,{k - i}}^{T} \\ {A_{k - i}^{M}e_{M,{k - i}}^{T}} \\ 0_{{({N - M - i})} \times 2} \end{bmatrix}}}} & \; \end{matrix}$

At this time, when attention is paid to G_(k) ^(N)(i−1,:)=G_(k−1) ^(N)(i,:), it becomes

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 38} \right\rbrack & \; \\ {\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} = {{\frac{1}{S_{M,k}}\begin{bmatrix} e_{M,k}^{T} \\ {A_{k}^{M}e_{M,k}^{T}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix}} - {\frac{1}{S_{M,{k - N + M - 1}}}\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ e_{M,{k - N + M - 1}}^{T} \\ {A_{k - N + M - 1}^{M}e_{M,{k - N + M - 1}}^{T}} \end{bmatrix}}}}} & \; \end{matrix}$

By this, expression (35) is established. Thus, the auxiliary gain matrix K^(U) _(k) ^(N) is equivalent to expression (34) (expression (42)).

7.3 Proof of Lemma 3

When an input signal is expressed by an M(≦N)-th order AR model, it becomes

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 39} \right\rbrack & \; \\ {{\eta_{k} = {{c_{k - N} + {C_{k}D_{k - 1}}} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}}}{{{\overset{\Cup}{Q}}_{k - N + M}^{M}\begin{bmatrix} D_{k}^{M} \\ 1 \end{bmatrix}} = \begin{bmatrix} 0 \\ \left( F_{k}^{M} \right)^{- 1} \end{bmatrix}}\left( {{{\overset{\Cup}{Q}}_{k}^{N}\begin{bmatrix} D_{k} \\ 1 \end{bmatrix}} = {{\overset{\Cup}{Q}}_{k}^{N}\begin{bmatrix} \begin{matrix} 0_{N - M} \\ D_{k}^{M} \end{matrix} \\ 1 \end{bmatrix}}} \right)} & (58) \end{matrix}$

When attention is paid to this, expression (36) and expression (37) are obtained by a similar method to non-patent document 2.

INDUSTRIAL APPLICABILITY

The fast identification method of the invention can be applied to the identification of a large-scale sound system or communication system, and is effective for an echo canceller in a loudspeaker or a television meeting system, active noise control, sound field reproduction and the like. Besides, by the development of the numerically stabilizing method, the operation can be made more stably even at single precision, and higher performance can be realized at low cost.

In a normal civil communication equipment or the like, in general, calculation is often performed at single precision from the viewpoint of cost and speed. Thus, the invention, as the practical fast identification method, would have the effect in various industrial fields. 

1. A system identification device for performing fast real-time identification of a time invariable or time variable system, comprising: a filter that is robust against a disturbance by determining that a maximum energy gain to a filter error from the disturbance, as an evaluation criterion, is restricted to be smaller than a previously given upper limit γ_(f) ², wherein the filer satisfies an H_(∞) evaluation criterion as indicated by following expression (14) with respect to a state space model as indicated by following expressions (11) to (13), when an input signal is expressed by an M(<N)-th order autoregressive model (AR model), the filter is given by following expressions (38) to (44), and the filter satisfies a scalar existence condition of following expressions (45) and (46): $\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {{x_{k + 1} = {x_{k} + {G_{k}w_{k}}}},w_{k},{x_{k} \in ^{N}}} & (11) \\ {{y_{k} = {{H_{k}x_{k}} + v_{k}}},y_{k},{v_{k} \in }} & (12) \\ {{z_{k} = {H_{k}x_{k}}},{z_{k} \in },{H_{k} \in ^{1 \times N}}} & (13) \\ {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\sum\limits_{0}^{- 1}}^{2} + {\sum\limits_{i = 0}^{k}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \\ \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 2} \right\rbrack & \; \\ {{{\hat{x}}_{kk} = {{\hat{x}}_{{k - 1}{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:},1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:},1} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}}}{D_{k}^{M} = \frac{D_{k - 1}^{M} - {{m_{k}\left( {{N - M + {1\text{:}N}},\text{:}} \right)}W\; \eta_{M,k}}}{1 - {\mu_{k}W\; \eta_{M,k}}}}} & (39) \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{{\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}} & (42) \\ {{{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W{\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}}{{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1\text{:}M},\text{:}} \right)}W{\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}}} & (43) \end{matrix}$ here, G_(k) ^(N) is updated as follows: $\begin{matrix} {\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} {e_{M,k}^{T}/S_{M,k}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix} - {\quad{{\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {e_{M,{k - N + M - 1}}^{T}/S_{M,{k - N + M - 1}}} \\ {A_{k - N + M - 1}^{M}{e_{M,{k - N + M - 1}}^{T}/S_{M,{k - N + M - 1}}}} \end{bmatrix}{where}},{C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)},{C_{k - 1}^{M} = {C_{k - 1}\left( {\text{:},{1\text{:}M}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}}}} & (44) \end{matrix}$ e _(f,i) =z ^(v) _(i|i) −H _(i) x _(i) , z ^(v) _(i|i) =H _(i) x ^(x) _(i|i) (c_(k)εR^(2×1) is a first column vector of C_(k)=[c_(k), . . . , C_(k−N+1)], c_(k−1)=0_(2×1) and k−i<0 are assumed, and initial values are set to be K₀=0_(N×2), G₀ ^(N)=0_((N+1)×2), A₀ ^(M)=0_(M×1), S_(M,0)=1/ε₀, D₀ ^(M)=0_(M×1), x̂_(0|0)=x^(v)0=0_(N×1), here, 0_(m×n) denotes an m×n zero matrix) [Mathematical Expression 3] −{circumflex over (Ξ)}+ργ_(f) ²>0, i=0, . . . , k  (45) here, Q,{circumflex over (Ξ)}_(i) are respectively defined by following expressions: $\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (46) \end{matrix}$ where x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1−χ(γ_(f)), Z₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Σ₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, μk_(k): N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), m_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γ_(f): attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), η_(M,k) and μ_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e{tilde over ( )}_(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C_(k) ^(M): a 2×M matrix including an N−M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k).
 2. The system identification device according to claim 1, wherein it is assumed that the input signal is expressed by the M(≦N)-th order autoregressive model (AR model), a processing section of the filer optimally generates a (N+1)×2 auxiliary gain matrix K^(U) _(k) ^(N)=Q^(U) _(k) ⁻¹C^(U) _(k) ^(T) from an M×2 gain matrix, here, Q^(U) _(k) is expressed by [Mathematical Expression 4] {hacek over (Q)} _(k) =ρ{hacek over (Q)} _(k−1) +{hacek over (C)} _(k) ^(T) W{hacek over (C)} _(k)  (32) C ^(U) _(k) =[C _(k) C _(k−N) ]=[C _(k) C _(k−1)], [Mathematical Expression 5] where, ${C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}$
 3. The system identification device according to claim 1, wherein a processing section of the filer adopts a following expression η{tilde over ( )}_(k) instead of a backward prediction error η_(k) for numeral stabilization: [Mathematical Expression 6] {tilde over (η)}_(k)=η_(k)+β(η_(k)−ρ^(−N) S _(k)μ_(k) ^(T))  (47)
 4. The system identification device according to claim 1, wherein a processing section of the filter includes a step of reading an initial state of a recursive equation from a storage section or inputting the initial state from an input section and determining it, the processing section includes a step of inputting an input u_(k) from the input section or reading it from the storage section and setting C^(U) _(k), K^(U) _(k) (1:M,:), the processing section includes a step of recursively determining variables e_(M,k), A_(k) ^(M), S_(M,k) and K_(k)(1:M,:) by expression (43), the processing section includes a step of updating the matrix G_(k) ^(N), by expression (44) and calculating an auxiliary gain matrix K^(U) _(k) ^(N) as in expression (42), the processing section includes a step of partitioning the auxiliary gain matrix K^(U) _(k) ^(N) by expression (41), the processing section includes a step of calculating a variable D_(k) ^(M) and a backward prediction error η_(M,k) by expression (40), the processing section includes a step of calculating the gain matrix K_(k) by expression (39), the processing section includes a step of updating the filter equation of a fast H_(∞) filter by expression (38), and the processing section includes a step of advancing the time k and repeating the respective steps.
 5. The system identification device according to claim 1, wherein at the step of calculation by expression (44), a processing section of the filter obtains variables e_(M,k−N+M−1), A_(k−N+M−1) ^(M), S_(M,k−N+M−1), K^(U) _(k−N+M−1) ^(M−1) (=K_(k−n+M−1) ^(M)=K_(k−N+M−1) (1:M,:)) by one of followings: 1) values of the variables obtained at the respective steps are held on a memory during N-M steps, and 2) values of the variables at a time t_(k−N+M−1) are also again calculated at the respective steps.
 6. The system identification device according to claim 1, wherein the filter is applied to obtain a state estimated value X̂_(k|k), a pseudo-echo d̂_(k) is estimated as in a following expression, and this is subtracted from an echo to cancel the echo, $\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 7} \right\rbrack & \; \\ {{{\hat{d}}_{k} = {\sum\limits_{i = 0}^{N - 1}{{{\hat{h}}_{i}\lbrack k\rbrack}u_{k - i}}}},{k = 0},1,2,\ldots} & (49) \end{matrix}$ where, x̂_(k|k)=[ĥ0[k], . . . , ĥ_(N−1) [k]]^(T), u_(k) and y_(k) respectively denote observed values of a received signal and the echo at the time t_(k) (=kT; T is a sampling period), v_(k) denotes circuit noise having a mean value of 0 at the time t_(k), and N denotes the tap number (known).
 7. A system identification method for performing fast real-time identification of a time invariable or time variable system, by using: a filter that is robust against a disturbance by determining that a maximum energy gain to a filter error from the disturbance, as an evaluation criterion, is restricted to be smaller than a previously given upper limit γf², wherein the filer satisfies an H_(∞) evaluation criterion as indicated by following expression (14) with respect to a state space model as indicated by following expressions (11) to (13), when an input signal is expressed by an M(≦N)-th order autoregressive model (AR model), the filter is given by following expressions (38) to (44), and the filter satisfies a scalar existence condition of following expressions (45) and (46): $\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {{x_{k + 1} = {x_{k} + {G_{k}w_{k}}}},w_{k},{x_{k} \in ^{N}}} & (11) \\ {{y_{k} = {{H_{k}x_{k}} + v_{k}}},y_{k},{v_{k} \in }} & (12) \\ {{z_{k} = {H_{k}x_{k}}},{z_{k} \in },{H_{k} \in ^{1 \times N}}} & (13) \\ {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\Sigma_{0}^{- 1}}^{2} + {\sum\limits_{i = 0}^{k}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \\ \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 2} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:},1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:},1} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}}}{D_{k}^{M} = \frac{D_{k - 1}^{M}{m_{k}\left( {{N - M + {1\text{:}N}},\text{:}} \right)}W\; \eta_{M,k}}{1 - {\mu_{k}W\; \eta_{M,k}}}}} & (39) \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{{\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}}{{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W\; {\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}}} & (42) \\ {{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1\text{:}M},\text{:}} \right)}W\; {\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}} & (43) \end{matrix}$ here, G_(k) ^(N) is updated as follows: $\begin{matrix} {{\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} {e_{M,k}^{T}/S_{M,k}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \\ {0_{{({N - M + 1})} \times 2}\;} \end{bmatrix} - \begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ \frac{e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \\ \frac{A_{k - N + M - 1}^{M}e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \end{bmatrix}}}\mspace{79mu} {{where},\mspace{20mu} {C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)},{C_{k - 1}^{M} = {C_{k - 1}\left( {:{,{1:M}}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},\mspace{20mu} {W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}} & (44) \end{matrix}$ e _(f,i) =z ^(v) _(i|i) −H _(i) x _(i) , z ^(v) _(i|i) =H _(i) x̂ _(i|i) (C_(k)εR^(2×1) is a first column vector of C_(k)=[C_(k), . . . , C_(k−N+1)], c_(k−1)=0_(2×1) and k−i<0 are assumed, and initial values are set to be K₀=0_(N×2), G₀ ^(N)=0_((N+1)×2), A₀ ^(M)=0_(M×1), S_(M,0)=1/ε₀, D₀ ^(M)=0_(M×1), X̂_(=x) ^(v) ₀=0N×1, here, 0_(m×n) denotes an m×n zero matrix) [Mathematical Expression 3] −Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (45) here, Q, {circumflex over (Ξ)}_(i) are respectively defined by following expressions: $\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (46) \end{matrix}$ where x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1−χ(γ_(f)), Σ₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Z₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, μ_(k): N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), m_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γf: attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), η_(M,k) and μ_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e{tilde over ( )}_(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C_(k) ^(M): a 2×M matrix including an N−M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k).
 8. A computer readable recording medium recording a system identification program that causes a computer to perform fast real-time identification of a time invariable or time variable system, by using: a filter that is robust against a disturbance by determining that a maximum energy gain to a filter error from the disturbance, as an evaluation criterion, is restricted to be smaller than a previously given upper limit γf², wherein the filer satisfies an H_(∞) evaluation criterion as indicated by following expression (14) with respect to a state space model as indicated by following expressions (11) to (13), when an input signal is expressed by an M(≦N)-th order autoregressive model (AR model), the filter is given by following expressions (38) to (44), and the filter satisfies a scalar existence condition of following expressions (45) and (46): $\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {{x_{k + 1} = {x_{k} + {G_{k}w_{k}}}},w_{k},{x_{k} \in ^{N}}} & (11) \\ {{y_{k} = {{H_{k}x_{k}} + v_{k}}},y_{k\;},{v_{k} \in }} & (12) \\ {{z_{k} = {H_{k}x_{k}}},{z_{k} \in },{H_{k} \in ^{1 \times N}}} & (13) \\ {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\Sigma_{0}^{- 1}}^{2} + {\sum\limits_{i = 0}^{k}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \\ \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 2} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:},1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {:{,1}} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}}}{D_{k}^{M} = \frac{D_{k}^{N} - {{m_{k}\left( {{{N - M + 1}:N},\text{:}} \right)}W\; \eta_{M,k}}}{1 - {\mu_{k}W\; \eta_{M,k}}}}} & (39) \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{{\overset{\Cup}{K}}_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ {\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{{\overset{\Cup}{K}}_{k - N + M - 1}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}}{{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W\; {\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}}} & (42) \\ {{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1\text{:}M},\text{:}} \right)}W\; {\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}} & (43) \end{matrix}$ here, G_(k) ^(N) is updated as follows: $\begin{matrix} {{\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} \begin{matrix} {e_{M,k}^{T}/S_{{M,k}\;}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \end{matrix} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix} - \begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ \frac{e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \\ \frac{A_{M,{k - N + M - 1}}^{T}e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \end{bmatrix}}}{{where},{C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)},{C_{k - 1}^{M} = {C_{k - 1}\left( {\text{:},{1:M}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}} & (44) \end{matrix}$ e _(f,i) =Z ^(v) _(i|i) −H _(i) x _(i) , z ^(v) _(i|i) =H _(i) x̂ _(i|i) (C_(k)ε R^(2×1) is a first column vector of C_(k)=[C_(k), . . . , C_(k−N+1)], C_(k−1)=0_(2×1) and k−i<0 are assumed, and initial values are set to be K₀0=0_(N×2), G₀ ^(N)=0_((N+1)×2), A₀ ^(M)−0_(M×1), S_(M,0)=1/ε₀, D₀ ^(M)=0_(M×1), X̂_(0|0)=x^(v)0=0_(N×1), here, 0_(m×n) denotes an m×n zero matrix) [Mathematical Expression 3] −Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (45) here, q, {circumflex over (Ξ)}_(i) are respectively defined by following expressions: $\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (46) \end{matrix}$ where x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1−χ(γ_(f)), Σ₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Σ₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, Z_(k): N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), m_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γ_(f): attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), η_(M,k) and μ_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e{tilde over ( )}_(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C_(k) ^(M): a 2M matrix including an N−M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k).
 9. A system identification program that causes a computer to perform fast real-time identification of a time invariable or time variable system, by using: a filter that is robust against a disturbance by determining that a maximum energy gain to a filter error from the disturbance, as an evaluation criterion, is restricted to be smaller than a previously given upper limit γ_(f) ², wherein the filer satisfies an H_(∞) evaluation criterion as indicated by following expression (14) with respect to a state space model as indicated by following expressions (11) to (13), when an input signal is expressed by an M(<N)-th order autoregressive model (AR model), the filter is given by following expressions (38) to (44), and the filter satisfies a scalar existence condition of following expressions (45) and (46): $\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 1} \right\rbrack & \; \\ {{x_{k + 1} = {x_{k} + {G_{k}w_{k}}}},w_{k},{x_{k} \in ^{N}}} & (11) \\ {{y_{k} = {{H_{k}x_{k}} + v_{k}}},y_{k},{v_{k} \in }} & (12) \\ {{z_{k} = {H_{k}x_{k}}},{z_{k} \in },{H_{k} \in ^{1 \times N}}} & (13) \\ {{\sup\limits_{x_{0},{\{ w_{i}\}},{\{ v_{i}\}}}\frac{\sum\limits_{i = 0}^{k}{{e_{f,i}}^{2}/\rho}}{{{x_{0} - {\overset{\Cup}{x}}_{0}}}_{\Sigma_{0}^{- 1}}^{2} + {\sum\limits_{i = 0}^{k}{w_{i}}^{2}} + {\sum\limits_{i = 0}^{k}{{v_{i}}^{2}/\rho}}}} < \gamma_{f}^{2}} & (14) \\ \left\lbrack {{Mathematical}\mspace{14mu} {Expression}\mspace{14mu} 2} \right\rbrack & \; \\ {{{\hat{x}}_{k|k} = {{\hat{x}}_{{k - 1}|{k - 1}} + {K_{s,k}\left( {y_{k} - {H_{k}{\hat{x}}_{{k - 1}|{k - 1}}}} \right)}}}{K_{s,k} = {\frac{K_{k}\left( {\text{:},1} \right)}{1 + {\gamma_{f}^{- 2}H_{k}{K_{k}\left( {\text{:},1} \right)}}} \in ^{N \times 1}}}} & (38) \\ {{{K_{k} = {m_{k} - {D_{k}\mu_{k}}}},{D_{k} = \begin{bmatrix} 0_{N - M} \\ D_{k}^{M} \end{bmatrix}}}{D_{k}^{M} = \frac{D_{k - 1}^{M} - {{m_{k}\left( {{N - M + {1\text{:}N}},\text{:}} \right)}W\; \eta_{M,k}}}{1 - {\mu_{k}W\; \eta_{M,k}}}}} & (39) \\ {\eta_{M,k} = {c_{k - N} + {{\underset{\_}{C}}_{k}^{M}D_{k - 1}^{M}}}} & (40) \\ {{\begin{bmatrix} m_{k} \\ \mu_{k} \end{bmatrix} = {\overset{\Cup}{K}}_{k}^{N}},{m_{k} \in ^{N \times 2}},{\mu_{k} \in ^{1 \times 2}}} & (41) \\ {{{K_{k}^{N} = {\begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ K_{k - N + M - 1}^{M - 1} \end{bmatrix} + G_{k}^{N}}},{K_{k - N + M - 1}^{M - 1} = {K_{k - N + M - 1}\left( {{1\text{:}M},\text{:}} \right)}}}{{S_{M,k} = {{\rho \; S_{M,{k - 1}}} + {e_{M,k}^{T}W\; {\overset{\sim}{e}}_{M,k}}}},{e_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k}^{M}}}}}} & (42) \\ {{A_{k}^{M} = {A_{k - 1}^{M} - {{K_{k - 1}\left( {{1\text{:}M},\text{:}} \right)}W\; {\overset{\sim}{e}}_{M,k}}}},{{\overset{\sim}{e}}_{M,k} = {c_{k} + {C_{k - 1}^{M}A_{k - 1}^{M}}}}} & (43) \end{matrix}$ here, G_(k) ^(N) is updated as follows: $\begin{matrix} {{\begin{bmatrix} G_{k}^{N} \\ 0_{1 \times 2} \end{bmatrix} = {\begin{bmatrix} 0_{1 \times 2} \\ G_{k - 1}^{N} \end{bmatrix} + \begin{bmatrix} {e_{M,k}^{T}/S_{M,k}} \\ {A_{k}^{M}{e_{M,k}^{T}/S_{M,k}}} \\ 0_{{({N - M + 1})} \times 2} \end{bmatrix} - \begin{bmatrix} 0_{{({N - M + 1})} \times 2} \\ \frac{e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \\ \frac{A_{k - N + M - 1}^{M}e_{M,{k - N + M - 1}}^{T}}{S_{M,{k - N + M - 1}}} \end{bmatrix}}}{{where},{C_{k}\left( {\text{:},{N - M + {1\text{:}N}}} \right)},{C_{k - 1}^{M} = {C_{k - 1}\left( {\text{:},{1:M}} \right)}},{C_{k} = \begin{bmatrix} H_{k} \\ H_{k} \end{bmatrix}},{W = \begin{bmatrix} 1 & 0 \\ 0 & {- \gamma_{f}^{- 2}} \end{bmatrix}}}} & (44) \end{matrix}$ e _(f,i) =z ^(v) _(i|i) −H _(i) x _(i) , z ^(v) _(i|i) =H _(i) x̂ _(i|i) (C_(k)ε R^(2×1) is a first column vector of C_(k)=[C_(k), . . . , C_(k−N+1)], C_(k−1)=0_(2×1) and k−i<0 are assumed, and initial values are set to be K₀=0_(N×2), G₀ ^(N)=0_((N+1)×2), A₀ ^(M)=0_(M×1), S_(M,0)=1/ε₀, D₀=0_(M×1), x̂_(0|0)=x^(v)0=0_(N×1), here, 0_(m×n) denotes an m×n zero matrix) [Mathematical Expression 3] −Q{circumflex over (Ξ)} _(i)+ργ_(f) ²>0, i=0, . . . , k  (45) here, Q, {circumflex over (Ξ)}_(i) are respectively defined by following expressions: $\begin{matrix} {{\varrho = {1 - \gamma_{f}^{2}}},{{\hat{\Xi}}_{i} = {\frac{\rho \; H_{i}K_{s,i}}{1 - {H_{i}K_{s,i}}} = \frac{\rho \; H_{i}{K_{i}\left( {\text{:},1} \right)}}{1 - {\left( {1 - \gamma_{f}^{- 2}} \right)H_{i}{K_{i}\left( {\text{:},1} \right)}}}}}} & (46) \end{matrix}$ where x_(k): a state vector or simply a state; unknown, this is an object of estimation, x₀: an initial state; unknown, w_(k): a system noise; unknown, v_(k): an observation noise; unknown, y_(k): an observation signal; input of the filter and known, z_(k): an output signal, unknown, G_(k): a drive matrix; becomes known at execution, H_(k): an observation matrix; known, x̂_(k|k): an estimated value of the state x_(k) at a time k using observation signals y₀−y_(k); given by a filter equation, K_(s,k): a filter gain; obtained from a gain matrix K_(k), ρ: a forgetting factor; in a case of Theorem 1-Theorem 3, when γ_(f) is determined, it is automatically determined by ρ=1χ(γ_(f)), Σ₀ ⁻¹: an inverse matrix of a weighting matrix expressing uncertainty of a state; Z₀ is known, N: a dimension (tap number) of a state vector; previously given, M: an order of an AR model; previously given, μ_(k): N+1th row vector of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), μ_(k): N×2 matrix including a first to an N-th row of K^(U) _(k) ^(N); obtained from K^(U) _(k) ^(N), γ_(f): attenuation level; given at design time D_(k) ^(M): a backward prediction coefficient vector; obtained from m_(k), η_(M,k) and μ_(k), W: a weighting matrix; determined from γ_(f), A_(k) ^(M); a forward prediction coefficient vector; obtained from K_(k−1) and e{tilde over ( )}_(M,k), C_(k) ^(M): a 2×M matrix including a 1st to an M-th column vector of C_(k); determined from the observation matrix H_(k), and C_(k) ^(M): a 2×M matrix including an N−M+1-th to an N-th column vector of C_(k); determined from the observation matrix H_(k.) 